﻿Public Class Dcliente

    Public Shared Function SeleccionarTodo(ByVal descEmpresa As String) As List(Of Ecliente)
        Dim clientes As List(Of Ecliente) = Nothing 'Es una coleccion de lista tipado (vendedor)

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_cliente_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            clientes = New List(Of Ecliente)
                            Dim cliente As Ecliente = Nothing
                            Do While dr.Read
                                cliente = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetInt16(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetInt32(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("centroLaboral")), _
                                    dr.GetString(dr.GetOrdinal("comentarios")), _
                                    dr.GetString(dr.GetOrdinal("estado")))
                                clientes.Add(cliente)

                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return clientes
    End Function
    Public Shared Function SeleccionarClienteCoopropietario(ByVal descEmpresa As String, ByVal idRelacion As Int32) As List(Of Ecliente)
        Dim cliCoopropietarios As List(Of Ecliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_clienteCoopropietario_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idRelacion", SqlDbType.Int).Value = idRelacion
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            cliCoopropietarios = New List(Of Ecliente)
                            Dim cliCoopropietario As Ecliente = Nothing 'tipo 
                            Do While dr.Read
                                cliCoopropietario = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetString(dr.GetOrdinal("TpoDocmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetInt32(dr.GetOrdinal("dscEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("porcentaje")))
                                cliCoopropietarios.Add(cliCoopropietario)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return cliCoopropietarios
    End Function
    Public Shared Function filtrarCoopropietario(ByVal descEmpresa As String, ByVal idProyecto As Int32, ByVal idEtapa As Int32, ByVal idSeparacion As Int32) As List(Of Ecliente)
        Dim cliCoopropietarios As List(Of Ecliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_filtrarCoopropietario_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = idEtapa
                cmd.Parameters.Add("@idSeparacion", SqlDbType.Int).Value = idSeparacion
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            cliCoopropietarios = New List(Of Ecliente)
                            Dim cliCoopropietario As Ecliente = Nothing 'tipo 
                            Do While dr.Read
                                cliCoopropietario = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("dscEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetDecimal(dr.GetOrdinal("porcentaje")))
                                cliCoopropietarios.Add(cliCoopropietario)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return cliCoopropietarios
    End Function
    Public Shared Function filtrarCoopropietarioTemp(ByVal descEmpresa As String, ByVal idProyecto As Int32, ByVal idEtapa As Int32, ByVal idSeparacion As Int32) As List(Of Ecliente)
        Dim cliCoopropietarios As List(Of Ecliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_filtrarCoopropietarioTemp_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = idEtapa
                cmd.Parameters.Add("@idSeparacion", SqlDbType.Int).Value = idSeparacion
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            cliCoopropietarios = New List(Of Ecliente)
                            Dim cliCoopropietario As Ecliente = Nothing 'tipo 
                            Do While dr.Read
                                cliCoopropietario = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("dscEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetDecimal(dr.GetOrdinal("porcentaje")))
                                cliCoopropietarios.Add(cliCoopropietario)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return cliCoopropietarios
    End Function
    Public Shared Function filtrarRepresentante(ByVal descEmpresa As String, ByVal idProyecto As Int32, ByVal idEtapa As Int32, ByVal idSeparacion As Int32) As List(Of Ecliente)
        Dim cliRepresentantes As List(Of Ecliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_filtrarRepresentante_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = idEtapa
                cmd.Parameters.Add("@idSeparacion", SqlDbType.Int).Value = idSeparacion
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            cliRepresentantes = New List(Of Ecliente)
                            Dim cliRepresentante As Ecliente = Nothing 'tipo 
                            Do While dr.Read
                                cliRepresentante = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("dscEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetDecimal(dr.GetOrdinal("porcentaje")))
                                cliRepresentantes.Add(cliRepresentante)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return cliRepresentantes
    End Function
    Public Shared Function filtrarRepresentanteTemp(ByVal descEmpresa As String, ByVal idProyecto As Int32, ByVal idEtapa As Int32, ByVal idSeparacion As Int32) As List(Of Ecliente)
        Dim cliRepresentantes As List(Of Ecliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_filtrarRepresentanteTemp_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = idEtapa
                cmd.Parameters.Add("@idSeparacion", SqlDbType.Int).Value = idSeparacion
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            cliRepresentantes = New List(Of Ecliente)
                            Dim cliRepresentante As Ecliente = Nothing 'tipo 
                            Do While dr.Read
                                cliRepresentante = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("dscEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetDecimal(dr.GetOrdinal("porcentaje")))
                                cliRepresentantes.Add(cliRepresentante)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return cliRepresentantes
    End Function
    Public Shared Function filtrarConyugue(ByVal descEmpresa As String, ByVal idProyecto As Int32, ByVal idEtapa As Int32, ByVal idSeparacion As Int32) As Ecliente

        Dim cliConyugue As Ecliente = Nothing 'tipo 
        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_filtrarConyugue_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = idEtapa
                cmd.Parameters.Add("@idSeparacion", SqlDbType.Int).Value = idSeparacion
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then

                            Do While dr.Read
                                cliConyugue = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("dscEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetDecimal(dr.GetOrdinal("porcentaje")))

                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return cliConyugue
    End Function
    Public Shared Function SeleccionarFiltraNombreApePaternoApeMaterno(ByVal descEmpresa As String, ByVal filtro As String) As List(Of Ecliente)
        Dim clientes As List(Of Ecliente) = Nothing 'Es una coleccion de lista tipado (vendedor)

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_cliente_filXNombreApePaternoApeMaterno", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            clientes = New List(Of Ecliente)
                            Dim cliente As Ecliente = Nothing
                            Do While dr.Read
                                cliente = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idRelacion")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("telefonoDos")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("nroPartida")), _
                                    dr.GetString(dr.GetOrdinal("telefonoUno")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral"))) ', _
                                'dr.GetString(dr.GetOrdinal("comentarios")))
                                clientes.Add(cliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return clientes
    End Function

    'Public Shared Function SeleccionarFiltroAtencionClientexNombreApePaternoApeMaterno _
    '(ByVal descEmpresa As String, ByVal filtro As String, ByVal idVendedor As Int32) As List(Of Ecliente)
    Public Shared Function SeleccionarFiltroAtencionClientexNombreApePaternoApeMaterno _
    (ByVal descEmpresa As String, ByVal filtro As String, ByVal pVendedor As Evendedor) As List(Of Ecliente)
        Dim atencionClientes As List(Of Ecliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_atencionCliente_selCobranza", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pVendedor.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pVendedor.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pVendedor.idVendedor
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            atencionClientes = New List(Of Ecliente)
                            Dim atencionCliente As Ecliente = Nothing
                            Do While dr.Read
                                atencionCliente = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoUno")), _
                                    dr.GetString(dr.GetOrdinal("puesto")), _
                                    dr.GetString(dr.GetOrdinal("codPago")), _
                                    dr.GetString(dr.GetOrdinal("inmueble")), _
                                    dr.GetString(dr.GetOrdinal("codigoSeparacion")))
                                atencionClientes.Add(atencionCliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return atencionClientes
    End Function
    Public Shared Function SeleccionarFiltroAtencionClientexNombreApePaternoApeMaternoDNI _
    (ByVal descEmpresa As String, ByVal filtro As String, ByVal pVendedor As Evendedor, ByVal DNI As String) As List(Of Ecliente)
        Dim atencionClientes As List(Of Ecliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_atencionCliente_selCobranzaDNI", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pVendedor.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pVendedor.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pVendedor.idVendedor
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = filtro
                cmd.Parameters.Add("@DNI", SqlDbType.VarChar, 11).Value = DNI
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            atencionClientes = New List(Of Ecliente)
                            Dim atencionCliente As Ecliente = Nothing
                            Do While dr.Read
                                atencionCliente = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoUno")), _
                                    dr.GetString(dr.GetOrdinal("puesto")), _
                                    dr.GetString(dr.GetOrdinal("codPago")), _
                                    dr.GetString(dr.GetOrdinal("inmueble")), _
                                    dr.GetString(dr.GetOrdinal("codigoSeparacion")))
                                atencionClientes.Add(atencionCliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return atencionClientes
    End Function

    Public Shared Function SeleccionarFiltroAtencionClientexNombreApePaternoApeMaterno _
    (ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera) As List(Of Ecliente)
        Dim atencionClientes As List(Of Ecliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_atencionCliente_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaCabecera.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaCabecera.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pProformaCabecera.Evendedor.idVendedor
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pProformaCabecera.filtro
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = pProformaCabecera.fchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = pProformaCabecera.fchFin
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            atencionClientes = New List(Of Ecliente)
                            Dim atencionCliente As Ecliente = Nothing
                            Do While dr.Read
                                atencionCliente = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoUno")), _
                                    dr.GetString(dr.GetOrdinal("puesto")), _
                                    dr.GetString(dr.GetOrdinal("codPago")), _
                                    dr.GetString(dr.GetOrdinal("fchAccion")), _
                                    dr.GetString(dr.GetOrdinal("inmueble")), _
                                    dr.GetString(dr.GetOrdinal("codigoSeparacion")))
                                atencionClientes.Add(atencionCliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return atencionClientes
    End Function
    Public Shared Function SeleccionarFiltroAhorroPrevioClientexNombreApePaternoApeMaterno _
    (ByVal descEmpresa As String, ByVal filtro As String) As List(Of Ecliente)
        Dim atencionClientes As List(Of Ecliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_ahorroPrevioCliente_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            atencionClientes = New List(Of Ecliente)
                            Dim atencionCliente As Ecliente = Nothing
                            Do While dr.Read
                                atencionCliente = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoUno")), _
                                    dr.GetString(dr.GetOrdinal("puesto")), _
                                    dr.GetString(dr.GetOrdinal("codPago")))
                                atencionClientes.Add(atencionCliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return atencionClientes
    End Function

    Public Shared Function SelClienteConAdicionales(ByVal descEmpresa As String, ByVal filtro As String) As List(Of Ecliente)
        Dim clienteAdicionales As List(Of Ecliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_clientesConAdicionales_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            clienteAdicionales = New List(Of Ecliente)
                            Dim cliente As Ecliente = Nothing
                            Do While dr.Read
                                cliente = New Ecliente( _
                                    dr.GetInt64(dr.GetOrdinal("correlativo")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("puesto")))
                                clienteAdicionales.Add(cliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return clienteAdicionales
    End Function

    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal pCliente As Ecliente, ByRef idCliente As Integer) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_cliente_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pCliente.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pCliente.nroDocumento
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = pCliente.edad
                cmd.Parameters.Add("@razonSocial", SqlDbType.VarChar, 55).Value = pCliente.razonSocial
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pCliente.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pCliente.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pCliente.apeMaterno
                cmd.Parameters.Add("@fchNacimineto", SqlDbType.Char, 10).Value = pCliente.fchNacimineto
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pCliente.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@nroDependientes", SqlDbType.Int).Value = pCliente.nroDependientes
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pCliente.sexo
                cmd.Parameters.Add("@idEstudio", SqlDbType.Int).Value = pCliente.Eestudio.idEstudio
                cmd.Parameters.Add("@nacionalidad", SqlDbType.VarChar, 55).Value = pCliente.nacionalidad
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 11).Value = pCliente.telefonoFijo
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 11).Value = pCliente.telefonoCelular
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pCliente.email
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pCliente.Eubigeo.idUbigeo
                cmd.Parameters.Add("@urbanizacion", SqlDbType.VarChar, 55).Value = pCliente.urbanizacion
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 55).Value = pCliente.direccion
                cmd.Parameters.Add("@separacionBienes", SqlDbType.Int).Value = pCliente.separacionBienes
                cmd.Parameters.Add("@nroPartida", SqlDbType.VarChar, 55).Value = pCliente.nroPartida
                cmd.Parameters.Add("@idProfesion", SqlDbType.Int).Value = pCliente.Eprofesion.idProfesion
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pCliente.Eocupacion.idOcupacion
                cmd.Parameters.Add("@ruc", SqlDbType.Char, 11).Value = pCliente.ruc
                cmd.Parameters.Add("@razonSocialLaboral", SqlDbType.VarChar, 55).Value = pCliente.razonSocialLaboral
                cmd.Parameters.Add("@giro", SqlDbType.VarChar, 55).Value = pCliente.giro
                cmd.Parameters.Add("@idUbigeoLaboral", SqlDbType.Char, 6).Value = pCliente.EubigeoLaboral.idUbigeo
                cmd.Parameters.Add("@urbanizacionLaboral", SqlDbType.VarChar, 55).Value = pCliente.urbanizacionLaboral
                cmd.Parameters.Add("@direccionLaboral", SqlDbType.VarChar, 55).Value = pCliente.direccionLaboral
                cmd.Parameters.Add("@telefonoUno", SqlDbType.VarChar, 11).Value = pCliente.telefonoLaboral
                cmd.Parameters.Add("@telefonoDos", SqlDbType.VarChar, 11).Value = pCliente.telefonoLaboral2
                cmd.Parameters.Add("@puesto", SqlDbType.VarChar, 55).Value = pCliente.puesto
                cmd.Parameters.Add("@antiguedadLaboral", SqlDbType.Int).Value = pCliente.antiguedadLaboral
                cmd.Parameters.Add("@ingresos", SqlDbType.Decimal, 15, 2).Value = pCliente.ingresos
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = pCliente.idTpoPersona
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pCliente.idUsuario
                cmd.Parameters.Add("@porcentaje", SqlDbType.Decimal, 15, 2).Value = pCliente.porcentaje
                cmd.Parameters.Add("@OtroDocumento", SqlDbType.VarChar, 55).Value = pCliente.OtroDocumento
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idCliente = Convert.ToInt64(cmd.Parameters("@idCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirConyugue(ByVal descEmpresa As String, ByVal pConyugue As Ecliente, ByRef idConyugue As Integer, ByVal idCliente As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_conyugue_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pConyugue.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pConyugue.nroDocumento
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = pConyugue.edad
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pConyugue.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pConyugue.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pConyugue.apeMaterno
                cmd.Parameters.Add("@fchNacimineto", SqlDbType.Char, 10).Value = pConyugue.fchNacimineto
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pConyugue.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@nroDependientes", SqlDbType.Int).Value = pConyugue.nroDependientes
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pConyugue.sexo
                cmd.Parameters.Add("@idEstudio", SqlDbType.Int).Value = pConyugue.Eestudio.idEstudio
                cmd.Parameters.Add("@nacionalidad", SqlDbType.VarChar, 55).Value = pConyugue.nacionalidad
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 11).Value = pConyugue.telefonoFijo
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 11).Value = pConyugue.telefonoCelular
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pConyugue.email
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pConyugue.Eubigeo.idUbigeo
                cmd.Parameters.Add("@urbanizacion", SqlDbType.VarChar, 55).Value = pConyugue.urbanizacion
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 55).Value = pConyugue.direccion
                cmd.Parameters.Add("@separacionBienes", SqlDbType.Int).Value = pConyugue.separacionBienes
                cmd.Parameters.Add("@idProfesion", SqlDbType.Int).Value = pConyugue.Eprofesion.idProfesion
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pConyugue.Eocupacion.idOcupacion
                cmd.Parameters.Add("@ruc", SqlDbType.Char, 11).Value = pConyugue.ruc
                cmd.Parameters.Add("@razonSocialLaboral", SqlDbType.VarChar, 55).Value = pConyugue.razonSocialLaboral
                cmd.Parameters.Add("@giro", SqlDbType.VarChar, 55).Value = pConyugue.giro
                cmd.Parameters.Add("@idUbigeoLaboral", SqlDbType.Char, 6).Value = pConyugue.EubigeoLaboral.idUbigeo
                cmd.Parameters.Add("@urbanizacionLaboral", SqlDbType.VarChar, 55).Value = pConyugue.urbanizacionLaboral
                cmd.Parameters.Add("@direccionLaboral", SqlDbType.VarChar, 55).Value = pConyugue.direccionLaboral
                cmd.Parameters.Add("@telefonoUno", SqlDbType.VarChar, 11).Value = pConyugue.telefonoLaboral
                cmd.Parameters.Add("@telefonoDos", SqlDbType.VarChar, 11).Value = pConyugue.telefonoLaboral2
                cmd.Parameters.Add("@puesto", SqlDbType.VarChar, 55).Value = pConyugue.puesto
                cmd.Parameters.Add("@antiguedadLaboral", SqlDbType.Int).Value = pConyugue.antiguedadLaboral
                cmd.Parameters.Add("@ingresos", SqlDbType.Decimal, 15, 2).Value = pConyugue.ingresos
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = pConyugue.idTpoPersona
                cmd.Parameters.Add("@idRelacion", SqlDbType.Int).Value = idCliente
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pConyugue.idUsuario
                cmd.Parameters.Add("@OtroDocumento", SqlDbType.VarChar, 55).Value = pConyugue.OtroDocumento
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idConyugue = Convert.ToInt64(cmd.Parameters("@idCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirCoopropietario(ByVal descEmpresa As String, ByVal pCoopropietario As Ecliente, ByRef idCoopropietario As Integer, ByVal idCliente As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_coopropietario_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pCoopropietario.nroDocumento
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pCoopropietario.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pCoopropietario.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pCoopropietario.apeMaterno
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pCoopropietario.idEstCivil
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pCoopropietario.Eubigeo.idUbigeo
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = 3
                cmd.Parameters.Add("@idRelacion", SqlDbType.Int).Value = idCliente
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pCoopropietario.idUsuario
                cmd.Parameters.Add("@porcentaje", SqlDbType.Int).Value = pCoopropietario.porcentaje
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 55).Value = pCoopropietario.direccion
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idCoopropietario = Convert.ToInt64(cmd.Parameters("@idCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirCoopropietarioTemp(ByVal descEmpresa As String, ByVal pCoopropietario As Ecliente, ByRef idCoopropietario As Integer, ByVal idCliente As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_coopropietarioTemp_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pCoopropietario.nroDocumento
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pCoopropietario.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pCoopropietario.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pCoopropietario.apeMaterno
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pCoopropietario.idEstCivil
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pCoopropietario.Eubigeo.idUbigeo
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = 3
                cmd.Parameters.Add("@idRelacion", SqlDbType.Int).Value = idCliente
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pCoopropietario.idUsuario
                cmd.Parameters.Add("@porcentaje", SqlDbType.Int).Value = pCoopropietario.porcentaje
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 55).Value = pCoopropietario.direccion
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idCoopropietario = Convert.ToInt64(cmd.Parameters("@idCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirRepresentante(ByVal descEmpresa As String, ByVal pRepresentante As Ecliente, ByRef idRepresentante As Integer, ByVal idCliente As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_representante_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pRepresentante.nroDocumento
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pRepresentante.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pRepresentante.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pRepresentante.apeMaterno
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pRepresentante.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pRepresentante.Eubigeo.idUbigeo
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = 6
                cmd.Parameters.Add("@idRelacion", SqlDbType.Int).Value = idCliente
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pRepresentante.idUsuario
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 55).Value = pRepresentante.direccion
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idRepresentante = Convert.ToInt64(cmd.Parameters("@idCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirRepresentanteTemp(ByVal descEmpresa As String, ByVal pRepresentante As Ecliente, ByRef idRepresentante As Integer, ByVal idCliente As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_representanteTemp_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pRepresentante.nroDocumento
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pRepresentante.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pRepresentante.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pRepresentante.apeMaterno
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pRepresentante.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pRepresentante.Eubigeo.idUbigeo
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = 6
                cmd.Parameters.Add("@idRelacion", SqlDbType.Int).Value = idCliente
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pRepresentante.idUsuario
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 55).Value = pRepresentante.direccion
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idRepresentante = Convert.ToInt64(cmd.Parameters("@idCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirConyugueMantenedor(ByVal descEmpresa As String, ByVal pConyugue As Ecliente, ByRef idConyugue As Integer, ByVal idCliente As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_conyugueMantenedor_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pConyugue.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pConyugue.nroDocumento
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = pConyugue.edad
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pConyugue.sexo
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pConyugue.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pConyugue.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pConyugue.apeMaterno
                cmd.Parameters.Add("@fchNacimineto", SqlDbType.Char, 10).Value = pConyugue.fchNacimineto
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 11).Value = pConyugue.telefonoFijo
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pConyugue.email
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = pConyugue.idTpoPersona
                cmd.Parameters.Add("@idRelacion", SqlDbType.Int).Value = idCliente
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pConyugue.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idConyugue = Convert.ToInt64(cmd.Parameters("@idCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirApoderado(ByVal descEmpresa As String, ByVal pApoderado As Ecliente, ByRef idApoderado As Integer, ByVal idCliente As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_apoderado_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pApoderado.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pApoderado.nroDocumento
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = pApoderado.edad
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pApoderado.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pApoderado.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pApoderado.apeMaterno
                cmd.Parameters.Add("@nacionalidad", SqlDbType.VarChar, 55).Value = pApoderado.nacionalidad
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pApoderado.email
                cmd.Parameters.Add("@telefonoParticular", SqlDbType.VarChar, 11).Value = pApoderado.telefonoParticular
                cmd.Parameters.Add("@CelularUno", SqlDbType.VarChar, 11).Value = pApoderado.celular1
                cmd.Parameters.Add("@CelularDos", SqlDbType.VarChar, 11).Value = pApoderado.celular2
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pApoderado.Eocupacion.idOcupacion
                cmd.Parameters.Add("@nroPartida", SqlDbType.VarChar, 55).Value = pApoderado.nroPartida
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = pApoderado.idTpoPersona
                cmd.Parameters.Add("@idRelacion", SqlDbType.Int).Value = idCliente
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pApoderado.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idApoderado = Convert.ToInt64(cmd.Parameters("@idCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

    Public Shared Function AñadirTemporal(ByVal descEmpresa As String, ByVal pCliente As Ecliente, ByRef idCliente As Integer) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_clienteTemp_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pCliente.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pCliente.nroDocumento
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = pCliente.edad
                cmd.Parameters.Add("@razonSocial", SqlDbType.VarChar, 55).Value = pCliente.razonSocial
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pCliente.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pCliente.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pCliente.apeMaterno
                cmd.Parameters.Add("@fchNacimineto", SqlDbType.Char, 10).Value = pCliente.fchNacimineto
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pCliente.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@nroDependientes", SqlDbType.Int).Value = pCliente.nroDependientes
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pCliente.sexo
                cmd.Parameters.Add("@idEstudio", SqlDbType.Int).Value = pCliente.Eestudio.idEstudio
                cmd.Parameters.Add("@nacionalidad", SqlDbType.VarChar, 55).Value = pCliente.nacionalidad
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 11).Value = pCliente.telefonoFijo
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 11).Value = pCliente.telefonoCelular
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pCliente.email
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pCliente.Eubigeo.idUbigeo
                cmd.Parameters.Add("@urbanizacion", SqlDbType.VarChar, 55).Value = pCliente.urbanizacion
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 55).Value = pCliente.direccion
                cmd.Parameters.Add("@separacionBienes", SqlDbType.Int).Value = pCliente.separacionBienes
                cmd.Parameters.Add("@nroPartida", SqlDbType.VarChar, 55).Value = pCliente.nroPartida
                cmd.Parameters.Add("@idProfesion", SqlDbType.Int).Value = pCliente.Eprofesion.idProfesion
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pCliente.Eocupacion.idOcupacion
                cmd.Parameters.Add("@ruc", SqlDbType.Char, 11).Value = pCliente.ruc
                cmd.Parameters.Add("@razonSocialLaboral", SqlDbType.VarChar, 55).Value = pCliente.razonSocialLaboral
                cmd.Parameters.Add("@giro", SqlDbType.VarChar, 55).Value = pCliente.giro
                cmd.Parameters.Add("@idUbigeoLaboral", SqlDbType.Char, 6).Value = pCliente.EubigeoLaboral.idUbigeo
                cmd.Parameters.Add("@urbanizacionLaboral", SqlDbType.VarChar, 55).Value = pCliente.urbanizacionLaboral
                cmd.Parameters.Add("@direccionLaboral", SqlDbType.VarChar, 55).Value = pCliente.direccionLaboral
                cmd.Parameters.Add("@telefonoUno", SqlDbType.VarChar, 11).Value = pCliente.telefonoLaboral
                cmd.Parameters.Add("@telefonoDos", SqlDbType.VarChar, 11).Value = pCliente.telefonoLaboral2
                cmd.Parameters.Add("@puesto", SqlDbType.VarChar, 55).Value = pCliente.puesto
                cmd.Parameters.Add("@antiguedadLaboral", SqlDbType.Int).Value = pCliente.antiguedadLaboral
                cmd.Parameters.Add("@ingresos", SqlDbType.Decimal, 15, 2).Value = pCliente.ingresos
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = pCliente.idTpoPersona
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pCliente.idUsuario
                cmd.Parameters.Add("@porcentaje", SqlDbType.Decimal, 15, 2).Value = pCliente.porcentaje
                cmd.Parameters.Add("@OtroDocumento", SqlDbType.VarChar, 55).Value = pCliente.OtroDocumento
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idCliente = Convert.ToInt64(cmd.Parameters("@idCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirConyugueTemporal(ByVal descEmpresa As String, ByVal pConyugue As Ecliente, ByRef idConyugue As Integer, ByVal idCliente As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_conyugueTemp_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pConyugue.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pConyugue.nroDocumento
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = pConyugue.edad
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pConyugue.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pConyugue.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pConyugue.apeMaterno
                cmd.Parameters.Add("@fchNacimineto", SqlDbType.Char, 10).Value = pConyugue.fchNacimineto
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pConyugue.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@nroDependientes", SqlDbType.Int).Value = pConyugue.nroDependientes
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pConyugue.sexo
                cmd.Parameters.Add("@idEstudio", SqlDbType.Int).Value = pConyugue.Eestudio.idEstudio
                cmd.Parameters.Add("@nacionalidad", SqlDbType.VarChar, 55).Value = pConyugue.nacionalidad
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 11).Value = pConyugue.telefonoFijo
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 11).Value = pConyugue.telefonoCelular
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pConyugue.email
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pConyugue.Eubigeo.idUbigeo
                cmd.Parameters.Add("@urbanizacion", SqlDbType.VarChar, 55).Value = pConyugue.urbanizacion
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 55).Value = pConyugue.direccion
                cmd.Parameters.Add("@separacionBienes", SqlDbType.Int).Value = pConyugue.separacionBienes
                cmd.Parameters.Add("@idProfesion", SqlDbType.Int).Value = pConyugue.Eprofesion.idProfesion
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pConyugue.Eocupacion.idOcupacion
                cmd.Parameters.Add("@ruc", SqlDbType.Char, 11).Value = pConyugue.ruc
                cmd.Parameters.Add("@razonSocialLaboral", SqlDbType.VarChar, 55).Value = pConyugue.razonSocialLaboral
                cmd.Parameters.Add("@giro", SqlDbType.VarChar, 55).Value = pConyugue.giro
                cmd.Parameters.Add("@idUbigeoLaboral", SqlDbType.Char, 6).Value = pConyugue.EubigeoLaboral.idUbigeo
                cmd.Parameters.Add("@urbanizacionLaboral", SqlDbType.VarChar, 55).Value = pConyugue.urbanizacionLaboral
                cmd.Parameters.Add("@direccionLaboral", SqlDbType.VarChar, 55).Value = pConyugue.direccionLaboral
                cmd.Parameters.Add("@telefonoUno", SqlDbType.VarChar, 11).Value = pConyugue.telefonoLaboral
                cmd.Parameters.Add("@telefonoDos", SqlDbType.VarChar, 11).Value = pConyugue.telefonoLaboral2
                cmd.Parameters.Add("@puesto", SqlDbType.VarChar, 55).Value = pConyugue.puesto
                cmd.Parameters.Add("@antiguedadLaboral", SqlDbType.Int).Value = pConyugue.antiguedadLaboral
                cmd.Parameters.Add("@ingresos", SqlDbType.Decimal, 15, 2).Value = pConyugue.ingresos
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = pConyugue.idTpoPersona
                cmd.Parameters.Add("@idRelacion", SqlDbType.Int).Value = idCliente
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pConyugue.idUsuario
                cmd.Parameters.Add("@OtroDocumento", SqlDbType.VarChar, 55).Value = pConyugue.OtroDocumento
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idConyugue = Convert.ToInt64(cmd.Parameters("@idCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirConyugueMantenedorTemporal(ByVal descEmpresa As String, ByVal pConyugue As Ecliente, ByRef idConyugue As Integer, ByVal idCliente As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_clienteTemp_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pConyugue.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pConyugue.nroDocumento
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pConyugue.sexo
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pConyugue.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pConyugue.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pConyugue.apeMaterno
                cmd.Parameters.Add("@fchNacimineto", SqlDbType.Char, 10).Value = pConyugue.fchNacimineto
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 11).Value = pConyugue.telefonoFijo
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pConyugue.email
                cmd.Parameters.Add("@idRelacion", SqlDbType.Int).Value = idCliente
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pConyugue.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idConyugue = Convert.ToInt64(cmd.Parameters("@idCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirApoderadoTemporal(ByVal descEmpresa As String, ByVal pApoderado As Ecliente, ByRef idApoderado As Integer, ByVal idCliente As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_apoderadoTemp_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pApoderado.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pApoderado.nroDocumento
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = pApoderado.edad
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pApoderado.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pApoderado.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pApoderado.apeMaterno
                cmd.Parameters.Add("@nacionalidad", SqlDbType.VarChar, 55).Value = pApoderado.nacionalidad
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pApoderado.email
                cmd.Parameters.Add("@telefonoParticular", SqlDbType.VarChar, 11).Value = pApoderado.telefonoParticular
                cmd.Parameters.Add("@CelularUno", SqlDbType.VarChar, 11).Value = pApoderado.celular1
                cmd.Parameters.Add("@CelularDos", SqlDbType.VarChar, 11).Value = pApoderado.celular2
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pApoderado.Eocupacion.idOcupacion
                cmd.Parameters.Add("@nroPartida", SqlDbType.VarChar, 55).Value = pApoderado.nroPartida
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = pApoderado.idTpoPersona
                cmd.Parameters.Add("@idRelacion", SqlDbType.Int).Value = idCliente
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pApoderado.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idApoderado = Convert.ToInt64(cmd.Parameters("@idCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

    Public Shared Function Editar(ByVal descEmpresa As String, ByVal cliente As Ecliente) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_clienteProforma_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = cliente.idCliente
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = cliente.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = cliente.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = cliente.apeMaterno
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = cliente.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.VarChar, 55).Value = cliente.nroDocumento
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = cliente.sexo
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = cliente.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@desEstCivil", SqlDbType.VarChar, 55).Value = cliente.EestadoCivil.desEstCivil
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Int).Value = cliente.Eubigeo.idUbigeo
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 11).Value = cliente.telefonoFijo
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = cliente.Eocupacion.idOcupacion
                cmd.Parameters.Add("@descOcupacion", SqlDbType.VarChar, 55).Value = cliente.Eocupacion.descOcupacion
                cmd.Parameters.Add("@telefonoLaboral", SqlDbType.VarChar, 55).Value = cliente.telefonoLaboral
                cmd.Parameters.Add("@nroDocumento", SqlDbType.VarChar, 55).Value = cliente.nroDocumento
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = cliente.edad
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = cliente.email
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 55).Value = cliente.direccion
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 11).Value = cliente.telefonoCelular
                'cmd.Parameters.Add("@centroLaboral", SqlDbType.VarChar, 55).Value = cliente.centroLaboral
                'cmd.Parameters.Add("@comentarios", SqlDbType.VarChar, 55).Value = cliente.comentarios
                cmd.Parameters.Add("@codPago", SqlDbType.Char, 10).Value = cliente.codPago
                cmd.Parameters.Add("@estado", SqlDbType.Char, 1).Value = cliente.estado
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = cliente.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

    Public Shared Function EditarClienteMantenedor(ByVal descEmpresa As String, ByVal pCliente As Ecliente) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_clienteMantenedor_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pCliente.idCliente
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pCliente.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pCliente.nroDocumento
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = pCliente.edad
                cmd.Parameters.Add("@razonSocial", SqlDbType.VarChar, 55).Value = pCliente.razonSocial
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pCliente.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pCliente.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pCliente.apeMaterno
                cmd.Parameters.Add("@fchNacimineto", SqlDbType.Char, 10).Value = pCliente.fchNacimineto
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pCliente.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@nroDependientes", SqlDbType.Int).Value = pCliente.nroDependientes
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pCliente.sexo
                cmd.Parameters.Add("@idEstudio", SqlDbType.Int).Value = pCliente.Eestudio.idEstudio
                cmd.Parameters.Add("@nacionalidad", SqlDbType.VarChar, 55).Value = pCliente.nacionalidad
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 11).Value = pCliente.telefonoFijo
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 11).Value = pCliente.telefonoCelular
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pCliente.email
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pCliente.Eubigeo.idUbigeo
                cmd.Parameters.Add("@urbanizacion", SqlDbType.VarChar, 55).Value = pCliente.urbanizacion
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 55).Value = pCliente.direccion
                cmd.Parameters.Add("@separacionBienes", SqlDbType.Int).Value = pCliente.separacionBienes
                cmd.Parameters.Add("@nroPartida", SqlDbType.VarChar, 55).Value = pCliente.nroPartida
                cmd.Parameters.Add("@idProfesion", SqlDbType.Int).Value = pCliente.Eprofesion.idProfesion
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pCliente.Eocupacion.idOcupacion
                cmd.Parameters.Add("@ruc", SqlDbType.Char, 11).Value = pCliente.ruc
                cmd.Parameters.Add("@razonSocialLaboral", SqlDbType.VarChar, 55).Value = pCliente.razonSocialLaboral
                cmd.Parameters.Add("@giro", SqlDbType.VarChar, 55).Value = pCliente.giro
                cmd.Parameters.Add("@idUbigeoLaboral", SqlDbType.Char, 6).Value = pCliente.EubigeoLaboral.idUbigeo
                cmd.Parameters.Add("@urbanizacionLaboral", SqlDbType.VarChar, 55).Value = pCliente.urbanizacionLaboral
                cmd.Parameters.Add("@direccionLaboral", SqlDbType.VarChar, 55).Value = pCliente.direccionLaboral
                cmd.Parameters.Add("@telefonoUno", SqlDbType.VarChar, 11).Value = pCliente.telefonoLaboral
                cmd.Parameters.Add("@telefonoDos", SqlDbType.VarChar, 11).Value = pCliente.telefonoLaboral2
                cmd.Parameters.Add("@puesto", SqlDbType.VarChar, 55).Value = pCliente.puesto
                cmd.Parameters.Add("@antiguedadLaboral", SqlDbType.Int).Value = pCliente.antiguedadLaboral
                cmd.Parameters.Add("@ingresos", SqlDbType.Decimal, 15, 2).Value = pCliente.ingresos
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = pCliente.idTpoPersona
                cmd.Parameters.Add("@estado", SqlDbType.Int).Value = pCliente.estado
                cmd.Parameters.Add("@codPago", SqlDbType.Char, 10).Value = pCliente.codPago
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pCliente.idUsuario
                cmd.Parameters.Add("@OtroDocumento", SqlDbType.VarChar, 55).Value = pCliente.OtroDocumento
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function EditarConyugueMantenedor(ByVal descEmpresa As String, ByVal pConyugue As Ecliente) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_conyugueMantenedor_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pConyugue.idCliente
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pConyugue.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pConyugue.nroDocumento
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = pConyugue.edad
                cmd.Parameters.Add("@razonSocial", SqlDbType.VarChar, 55).Value = pConyugue.razonSocial
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pConyugue.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pConyugue.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pConyugue.apeMaterno
                cmd.Parameters.Add("@fchNacimineto", SqlDbType.Char, 10).Value = pConyugue.fchNacimineto
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pConyugue.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@nroDependientes", SqlDbType.Int).Value = pConyugue.nroDependientes
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pConyugue.sexo
                cmd.Parameters.Add("@idEstudio", SqlDbType.Int).Value = pConyugue.Eestudio.idEstudio
                cmd.Parameters.Add("@nacionalidad", SqlDbType.VarChar, 55).Value = pConyugue.nacionalidad
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 11).Value = pConyugue.telefonoFijo
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 11).Value = pConyugue.telefonoCelular
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pConyugue.email
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pConyugue.Eubigeo.idUbigeo
                cmd.Parameters.Add("@urbanizacion", SqlDbType.VarChar, 55).Value = pConyugue.urbanizacion
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 55).Value = pConyugue.direccion
                cmd.Parameters.Add("@separacionBienes", SqlDbType.Int).Value = pConyugue.separacionBienes
                cmd.Parameters.Add("@nroPartida", SqlDbType.VarChar, 55).Value = pConyugue.nroPartida
                cmd.Parameters.Add("@idProfesion", SqlDbType.Int).Value = pConyugue.Eprofesion.idProfesion
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pConyugue.Eocupacion.idOcupacion
                cmd.Parameters.Add("@ruc", SqlDbType.Char, 11).Value = pConyugue.ruc
                cmd.Parameters.Add("@razonSocialLaboral", SqlDbType.VarChar, 55).Value = pConyugue.razonSocialLaboral
                cmd.Parameters.Add("@giro", SqlDbType.VarChar, 55).Value = pConyugue.giro
                cmd.Parameters.Add("@idUbigeoLaboral", SqlDbType.Char, 6).Value = pConyugue.EubigeoLaboral.idUbigeo
                cmd.Parameters.Add("@urbanizacionLaboral", SqlDbType.VarChar, 55).Value = pConyugue.urbanizacionLaboral
                cmd.Parameters.Add("@direccionLaboral", SqlDbType.VarChar, 55).Value = pConyugue.direccionLaboral
                cmd.Parameters.Add("@telefonoUno", SqlDbType.VarChar, 11).Value = pConyugue.telefonoLaboral
                cmd.Parameters.Add("@telefonoDos", SqlDbType.VarChar, 11).Value = pConyugue.telefonoLaboral2
                cmd.Parameters.Add("@puesto", SqlDbType.VarChar, 55).Value = pConyugue.puesto
                cmd.Parameters.Add("@antiguedadLaboral", SqlDbType.Int).Value = pConyugue.antiguedadLaboral
                cmd.Parameters.Add("@ingresos", SqlDbType.Decimal, 15, 2).Value = pConyugue.ingresos
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = pConyugue.idTpoPersona
                cmd.Parameters.Add("@idRelacion", SqlDbType.Int).Value = pConyugue.idRelacion
                cmd.Parameters.Add("@estado", SqlDbType.Int).Value = pConyugue.estado
                cmd.Parameters.Add("@codPago", SqlDbType.Char, 10).Value = pConyugue.codPago
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pConyugue.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function EditarApoderadoMantenedor(ByVal descEmpresa As String, ByVal pApoderado As Ecliente) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_apoderadoMantenedor_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pApoderado.idCliente
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pApoderado.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.VarChar, 55).Value = pApoderado.nroDocumento
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = pApoderado.edad
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pApoderado.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pApoderado.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pApoderado.apeMaterno
                cmd.Parameters.Add("@nacionalidad", SqlDbType.VarChar, 55).Value = pApoderado.nacionalidad
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pApoderado.email
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 11).Value = pApoderado.telefonoFijo
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 11).Value = pApoderado.telefonoCelular
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pApoderado.Eocupacion.idOcupacion
                cmd.Parameters.Add("@nroPartida", SqlDbType.Char, 10).Value = pApoderado.nroPartida
                cmd.Parameters.Add("@estado", SqlDbType.Char, 1).Value = pApoderado.estado
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pApoderado.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

    Public Shared Function Eliminar(ByVal descEmpresa As String, ByVal cliente As Ecliente) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_clienteProforma_del", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = cliente.idCliente
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = cliente.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function EliminarMantenedor(ByVal descEmpresa As String, ByVal pCliente As Ecliente) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_clienteMantenedor_del", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pCliente.idCliente
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pCliente.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

    Public Shared Function SeleccionarApoderado(ByVal descEmpresa As String, ByVal idProyecto As Int32, ByVal idEtapa As Int32, ByVal idSeparacionVenta As Int32) As List(Of Ecliente)
        Dim clientes As List(Of Ecliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_apoderado_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = idSeparacionVenta
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            clientes = New List(Of Ecliente)
                            Dim cliente As Ecliente = Nothing 'tipo 
                            Do While dr.Read
                                cliente = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetInt32(dr.GetOrdinal("idApoderado")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular2")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("nroPartida")))
                                clientes.Add(cliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return clientes
    End Function

    Public Shared Function SeleccionarTodoXId(ByVal descEmpresa As String, ByVal idCliente As Int32) As List(Of Ecliente)
        Dim clientes As List(Of Ecliente) = Nothing 'Es una coleccion de lista tipado (vendedor)

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_cliente_selTodoXId", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = idCliente
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            clientes = New List(Of Ecliente)
                            Dim cliente As Ecliente = Nothing
                            Do While dr.Read
                                cliente = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular2")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("nroPartida")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("puesto")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("estado")))
                                clientes.Add(cliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return clientes
    End Function

    Public Shared Function SeleccionarTodoMantedor(ByVal descEmpresa As String, ByVal idProyecto As Int32) As List(Of Ecliente)
        Dim clientes As List(Of Ecliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_clienteMantenedor1_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            clientes = New List(Of Ecliente)
                            Dim cliente As Ecliente = Nothing
                            Do While dr.Read
                                cliente = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("fchNacimineto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetInt32(dr.GetOrdinal("nroDependientes")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstudio")), _
                                    dr.GetString(dr.GetOrdinal("descEstudio")), _
                                    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacion")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("nroPartida")), _
                                    dr.GetInt32(dr.GetOrdinal("idProfesion")), _
                                    dr.GetString(dr.GetOrdinal("desProfesion")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("ruc")), _
                                    dr.GetString(dr.GetOrdinal("giro")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("direccionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoUno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoDos")), _
                                    dr.GetString(dr.GetOrdinal("puesto")), _
                                    dr.GetInt32(dr.GetOrdinal("antiguedadLaboral")), _
                                    dr.GetDecimal(dr.GetOrdinal("ingresos")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoPersona")), _
                                    dr.GetInt32(dr.GetOrdinal("idRelacion")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")), _
                                    dr.GetString(dr.GetOrdinal("descTpoPersona")), _
                                    dr.GetString(dr.GetOrdinal("Nombres")), _
                                    dr.GetString(dr.GetOrdinal("OtroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("inmueble")))
                                clientes.Add(cliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return clientes
    End Function
    Public Shared Function BuscarMantedor(ByVal descEmpresa As String, ByVal pCliente As Ecliente, ByVal idProyecto As Int32) As List(Of Ecliente)
        Dim clientes As List(Of Ecliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_clienteMantenedor_find", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pCliente.filtro
                cmd.Parameters.Add("@idProyecto", SqlDbType.VarChar, 55).Value = idProyecto
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            clientes = New List(Of Ecliente)
                            Dim cliente As Ecliente = Nothing
                            Do While dr.Read
                                cliente = New Ecliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("fchNacimineto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetInt32(dr.GetOrdinal("nroDependientes")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstudio")), _
                                    dr.GetString(dr.GetOrdinal("descEstudio")), _
                                    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacion")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("nroPartida")), _
                                    dr.GetInt32(dr.GetOrdinal("idProfesion")), _
                                    dr.GetString(dr.GetOrdinal("desProfesion")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("ruc")), _
                                    dr.GetString(dr.GetOrdinal("giro")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("direccionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoUno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoDos")), _
                                    dr.GetString(dr.GetOrdinal("puesto")), _
                                    dr.GetInt32(dr.GetOrdinal("antiguedadLaboral")), _
                                    dr.GetDecimal(dr.GetOrdinal("ingresos")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoPersona")), _
                                    dr.GetInt32(dr.GetOrdinal("idRelacion")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")), _
                                    dr.GetString(dr.GetOrdinal("descTpoPersona")), _
                                    dr.GetString(dr.GetOrdinal("Nombres")), _
                                    dr.GetString(dr.GetOrdinal("OtroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("inmueble")))
                                clientes.Add(cliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return clientes
    End Function
    Public Shared Function AñadirClienteMantenedor(ByVal descEmpresa As String, ByVal pCliente As Ecliente, ByRef idCliente As Integer) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_clienteMantenedor_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pCliente.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pCliente.nroDocumento
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = pCliente.edad
                cmd.Parameters.Add("@razonSocial", SqlDbType.VarChar, 55).Value = pCliente.razonSocial
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pCliente.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pCliente.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pCliente.apeMaterno
                cmd.Parameters.Add("@fchNacimineto", SqlDbType.Char, 10).Value = pCliente.fchNacimineto
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pCliente.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@nroDependientes", SqlDbType.Int).Value = pCliente.nroDependientes
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pCliente.sexo
                cmd.Parameters.Add("@idEstudio", SqlDbType.Int).Value = pCliente.Eestudio.idEstudio
                cmd.Parameters.Add("@nacionalidad", SqlDbType.VarChar, 55).Value = pCliente.nacionalidad
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 11).Value = pCliente.telefonoFijo
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 11).Value = pCliente.telefonoCelular
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pCliente.email
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pCliente.Eubigeo.idUbigeo
                cmd.Parameters.Add("@urbanizacion", SqlDbType.VarChar, 55).Value = pCliente.urbanizacion
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 55).Value = pCliente.direccion
                cmd.Parameters.Add("@separacionBienes", SqlDbType.Int).Value = pCliente.separacionBienes
                cmd.Parameters.Add("@nroPartida", SqlDbType.VarChar, 55).Value = pCliente.nroPartida
                cmd.Parameters.Add("@idProfesion", SqlDbType.Int).Value = pCliente.Eprofesion.idProfesion
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pCliente.Eocupacion.idOcupacion
                cmd.Parameters.Add("@ruc", SqlDbType.Char, 11).Value = pCliente.ruc
                cmd.Parameters.Add("@giro", SqlDbType.VarChar, 55).Value = pCliente.giro
                cmd.Parameters.Add("@idUbigeoLaboral", SqlDbType.Char, 6).Value = pCliente.EubigeoLaboral.idUbigeo
                cmd.Parameters.Add("@urbanizacionLaboral", SqlDbType.VarChar, 55).Value = pCliente.urbanizacionLaboral
                cmd.Parameters.Add("@direccionLaboral", SqlDbType.VarChar, 55).Value = pCliente.direccionLaboral
                cmd.Parameters.Add("@telefonoUno", SqlDbType.VarChar, 11).Value = pCliente.telefonoLaboral
                cmd.Parameters.Add("@telefonoDos", SqlDbType.VarChar, 11).Value = pCliente.telefonoLaboral2
                cmd.Parameters.Add("@puesto", SqlDbType.VarChar, 55).Value = pCliente.puesto
                cmd.Parameters.Add("@antiguedadLaboral", SqlDbType.Int).Value = pCliente.antiguedadLaboral
                cmd.Parameters.Add("@ingresos", SqlDbType.Decimal, 15, 2).Value = pCliente.ingresos
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = pCliente.idTpoPersona
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pCliente.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idCliente = Convert.ToInt64(cmd.Parameters("@idCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirClienteMantenedorTemporal(ByVal descEmpresa As String, ByVal pCliente As Ecliente, ByRef idCliente As Integer) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_clienteMantenedorTemp_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pCliente.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pCliente.nroDocumento
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = pCliente.edad
                cmd.Parameters.Add("@razonSocial", SqlDbType.VarChar, 55).Value = pCliente.razonSocial
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pCliente.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pCliente.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pCliente.apeMaterno
                cmd.Parameters.Add("@fchNacimineto", SqlDbType.Char, 10).Value = pCliente.fchNacimineto
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pCliente.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@nroDependientes", SqlDbType.Int).Value = pCliente.nroDependientes
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pCliente.sexo
                cmd.Parameters.Add("@idEstudio", SqlDbType.Int).Value = pCliente.Eestudio.idEstudio
                cmd.Parameters.Add("@nacionalidad", SqlDbType.VarChar, 55).Value = pCliente.nacionalidad
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 11).Value = pCliente.telefonoFijo
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 11).Value = pCliente.telefonoCelular
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pCliente.email
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pCliente.Eubigeo.idUbigeo
                cmd.Parameters.Add("@urbanizacion", SqlDbType.VarChar, 55).Value = pCliente.urbanizacion
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 55).Value = pCliente.direccion
                cmd.Parameters.Add("@separacionBienes", SqlDbType.Int).Value = pCliente.separacionBienes
                cmd.Parameters.Add("@nroPartida", SqlDbType.VarChar, 55).Value = pCliente.nroPartida
                cmd.Parameters.Add("@idProfesion", SqlDbType.Int).Value = pCliente.Eprofesion.idProfesion
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pCliente.Eocupacion.idOcupacion
                cmd.Parameters.Add("@ruc", SqlDbType.Char, 11).Value = pCliente.ruc
                cmd.Parameters.Add("@giro", SqlDbType.VarChar, 55).Value = pCliente.giro
                cmd.Parameters.Add("@idUbigeoLaboral", SqlDbType.Char, 6).Value = pCliente.EubigeoLaboral.idUbigeo
                cmd.Parameters.Add("@urbanizacionLaboral", SqlDbType.VarChar, 55).Value = pCliente.urbanizacionLaboral
                cmd.Parameters.Add("@direccionLaboral", SqlDbType.VarChar, 55).Value = pCliente.direccionLaboral
                cmd.Parameters.Add("@telefonoUno", SqlDbType.VarChar, 11).Value = pCliente.telefonoLaboral
                cmd.Parameters.Add("@telefonoDos", SqlDbType.VarChar, 11).Value = pCliente.telefonoLaboral2
                cmd.Parameters.Add("@puesto", SqlDbType.VarChar, 55).Value = pCliente.puesto
                cmd.Parameters.Add("@antiguedadLaboral", SqlDbType.Int).Value = pCliente.antiguedadLaboral
                cmd.Parameters.Add("@ingresos", SqlDbType.Decimal, 15, 2).Value = pCliente.ingresos
                cmd.Parameters.Add("@idTpoPersona", SqlDbType.Int).Value = pCliente.idTpoPersona
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pCliente.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idCliente = Convert.ToInt64(cmd.Parameters("@idCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

End Class
